import Vue from "vue";
import Vuex from "vuex";

Vue.use(Vuex);

export default new Vuex.Store({
    state: {
        name: "传智播客",
        obj: {
            a: 1,
        },
    },
    getters: {},
    mutations: {
        setName(state) {
            state.name = "黑马程序员";
            return "我是mutation返回值";
        },
        setObj(state) {
            // 新增属性值不会响应
            // 删除属性值不会响应
            // 解决方案
            // 1. 定义初始值属性
            // 2. 使用扩展运算符全量更改对象
            state.obj = { ...state.obj, name: "我是大飞的小迷弟" };
        },
    },
    actions: {
        // action通常写异步 -> 请求接口
        setName(ctx) {
            ctx.commit("setName");
            return { data: "我是接口返回值" };
        },
    },
    modules: {},
});
